﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using NetManager_Server;

namespace NetManager_Server
{
    public partial class FormThongKe : Form
    {
        public FormThongKe()
        {
            InitializeComponent();
        }

        ket_noi kn = new ket_noi();
        function fn = new function();
        private DataTable client, client1;

        private void doc_client()
        {
            string lenh = "select mac, computer_name from client";
            client = function.Doc_bang(lenh);
        }

        private void doc_macngay()
        {
            macngay.DisplayMember = "mac";
            macngay.ValueMember = "mac";
            macngay.DataSource = client;
        }

        private void doc_namengay()
        {
            namengay.DisplayMember = "computer_name";
            namengay.ValueMember = "computer_name";
            namengay.DataSource = client;
        }

        private void doc_client1()
        {
            string lenh = "select mac, computer_name from client";
            client1 = function.Doc_bang(lenh);
        }

        private void doc_macthang()
        {
            macthang.DisplayMember = "mac";
            macthang.ValueMember = "mac";
            macthang.DataSource = client1;
        }

        private void doc_namethang()
        {
            namethang.DisplayMember = "computer_name";
            namethang.ValueMember = "computer_name";
            namethang.DataSource = client1;
        }

        private void FormThongKe_Load(object sender, EventArgs e)
        {
            gbngay.Visible = false;
            gbthang.Visible = false;
            gbtatcangay.Visible = false;
            gbtatcathang.Visible = false;
            for (int i = 1; i <= 12; i++)
            {
                thang.Items.Add(i);
                thangall.Items.Add(i);
            }
            for (int j = 2013; j <= 2030; j++)
            {
                nam.Items.Add(j);
                namall.Items.Add(j);
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if ((rdngay.Checked == false) && (rdthang.Checked == false) && (rdtatcangay.Checked==false) && (rdtatcathang.Checked==false))
            {
                MessageBox.Show("Vui lòng chọn một loại thống kê !","Thông báo !",MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else if (rdngay.Checked == true)
            {
                if (namengay.Text == "Chọn máy")
                {
                    MessageBox.Show("Vui lòng chọn một máy để xem thống kê !", "Thông báo !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    namengay.Focus();
                }
                else
                {
                    TKNgay_May();
                }
            }
            else if (rdthang.Checked == true)
            {
                if (thang.Text == "")
                {
                    MessageBox.Show("Vui lòng chọn tháng thống kê !", "Thông báo !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    thang.Focus();
                }
                else if (nam.Text == "")
                {
                    MessageBox.Show("Vui lòng chọn năm thống kê !", "Thông báo !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    nam.Focus();
                }
                else if (namethang.Text == "Chọn máy")
                {
                    MessageBox.Show("Vui lòng chọn một máy để xem thống kê !", "Thông báo !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    namethang.Focus();
                }
                else
                {
                    TKThang_May();
                }
            }
            else if (rdtatcangay.Checked == true)
            {
                TKTatca_Ngay();
            }
            else if (rdtatcathang.Checked == true)
            {
                if (thangall.Text == "")
                {
                    MessageBox.Show("Vui lòng chọn tháng để xem thống kê !", "Thông báo !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    thangall.Focus();
                }
                else if (namall.Text == "")
                {
                    MessageBox.Show("Vui lòng chọn năm để xem thống kê !", "Thông báo !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    namall.Focus();
                }
                else
                {
                    TKTatca_Thang();
                }
            }

        }
        #region Thống kê doanh thu theo ngày của từng máy
        void TKNgay_May()
        {
            kn.Open();
            ReportDocument rp = new RPThongKeDoanhThu();
            DTSThongKe tkdt = new DTSThongKe();
            string ngay1 = ngay.Value.ToString("dd/MM/yyyy");
            string sql = "select c.mac, computer_name, starttime, endtime, thanhtien from client c, session s where c.mac = s.mac and CONVERT(nvarchar(20), starttime,103) = '" + ngay1 + "' and c.mac = '" + macngay.Text + "'";
            SqlDataAdapter adap = new SqlDataAdapter(sql, kn.conn);
            tkdt.Clear();
            adap.Fill(tkdt.Tables[0]);
            kn.Close();

            rp.SetDataSource(tkdt.Tables[0]);
            view.ReportSource = rp;
            view.Refresh();
        }
        #endregion

        #region Thống kê doanh thu theo tháng của từng máy
        void TKThang_May()
        {
            kn.Open();
            ReportDocument rp = new RPThongKeDoanhThu();
            DTSThongKe tkdt = new DTSThongKe();
            string sql = "select c.mac, computer_name, starttime, endtime, thanhtien from client c, session s where c.mac = s.mac and month(convert(varchar,starttime,113))='" + thang.Text + "' and year(convert(varchar,starttime,113))='" + nam.Text + "' and c.mac = '" + macthang.Text + "'";
            SqlDataAdapter adap = new SqlDataAdapter(sql, kn.conn);
            tkdt.Clear();
            adap.Fill(tkdt.Tables[0]);
            kn.Close();

            rp.SetDataSource(tkdt.Tables[0]);
            view.ReportSource = rp; 
            view.Refresh();
        }
        #endregion

        #region Thống kê doanh thu theo tháng của tất cả các máy
        void TKTatca_Thang()
        {
            kn.Open();
            ReportDocument rp = new RPThongKeDoanhThu();
            DTSThongKe tkdt = new DTSThongKe();
            string sql = "select c.mac, computer_name, starttime, endtime, thanhtien from client c, session s where c.mac = s.mac and month(convert(varchar,starttime,113))='" + thangall.Text + "' and year(convert(varchar,starttime,113))='" + namall.Text + "'";
            SqlDataAdapter adap = new SqlDataAdapter(sql, kn.conn);
            tkdt.Clear();
            adap.Fill(tkdt.Tables[0]);
            kn.Close();

            rp.SetDataSource(tkdt.Tables[0]);
            view.ReportSource = rp;
            view.Refresh();
        }
        #endregion

        #region Thống kê doanh thu theo ngày của tất cả các máy
        void TKTatca_Ngay()
        {
            kn.Open();
            ReportDocument rp = new RPThongKeDoanhThu();
            DTSThongKe tkdt = new DTSThongKe();
            string ngay = dateall.Value.ToString("dd/MM/yyyy");
            string sql = "select c.mac, computer_name, starttime, endtime, thanhtien from client c, session s where c.mac = s.mac and CONVERT(nvarchar(20), starttime,103) = '" + ngay + "'";
            SqlDataAdapter adap = new SqlDataAdapter(sql, kn.conn);
            tkdt.Clear();
            adap.Fill(tkdt.Tables[0]);
            kn.Close();

            rp.SetDataSource(tkdt.Tables[0]);
            view.ReportSource = rp;
            view.Refresh();
        }
        #endregion




        private void namengay_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
        }

        private void thang_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
        }

        private void nam_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
        }

        private void namethang_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;
        }

        private void rdngay_CheckedChanged(object sender, EventArgs e)
        {
            if (rdngay.Checked == true)
            {
                gbngay.Visible = true;
                gbthang.Visible = false;
                gbtatcangay.Visible = false;
                gbtatcathang.Visible = false;
            }
        }

        private void rdthang_CheckedChanged(object sender, EventArgs e)
        {
            if (rdthang.Checked == true)
            {
                gbngay.Visible = false;
                gbthang.Visible = true;
                gbtatcangay.Visible = false;
                gbtatcathang.Visible = false;
            }
        }

        private void namengay_DropDown(object sender, EventArgs e)
        {
            doc_client();
            doc_macngay();
            doc_namengay();
        }

        private void macngay_DropDown(object sender, EventArgs e)
        {
            doc_client();
            doc_macngay();
            doc_namengay();
        }

        private void namethang_DropDown(object sender, EventArgs e)
        {
            doc_client1();
            doc_macthang();
            doc_namethang();
        }

        private void macthang_DropDown(object sender, EventArgs e)
        {
            doc_client1();
            doc_macthang();
            doc_namethang();
        }

        private void view_Load(object sender, EventArgs e)
        {

        }

        private void rdtatca_CheckedChanged(object sender, EventArgs e)
        {
        
        }

        private void rdtatcangay_CheckedChanged(object sender, EventArgs e)
        {
            if (rdtatcangay.Checked == true)
            {
                gbngay.Visible = false;
                gbthang.Visible = false;
                gbtatcangay.Visible = true;
                gbtatcathang.Visible = false;
            }
        }

        private void rdtatcathang_CheckedChanged(object sender, EventArgs e)
        {
            if (rdtatcathang.Checked == true)
            {
                gbngay.Visible = false;
                gbthang.Visible = false;
                gbtatcangay.Visible = false;
                gbtatcathang.Visible = true;
            }
        }
    }
}
